const path = require("path"); //引入Node中的path模块

/**
 *
 * @param {string} dir //一个目录的名字
 */
function resolve(dir) {
  //返回一个绝对路径
  return path.resolve(dir);
}

// 获取环境
let env = process.env.NODE_ENV;
// 根据不同的环境，将项目打包在不同的文件夹，默认是dist
// 产品环境打包到proDist文件目录
// 测试环境 打包到testDist
let outputDirName;
switch (env) {
  case "production":
    outputDirName = "proDist";
    break;
  case "test":
    outputDirName = "testDist";
    break;
  default:
    outputDirName = "dist";
}
module.exports = {
  outputDir: outputDirName, //配置打包之后的输出目录
  publicPath: "./",
  lintOnSave: false, //保存的时候不启用eslint检查
  devServer: {
    //开发服务器
    port: env === "qf" ? 8081 : 8080, //根据不同服务配置端口
    proxy: {
      //配置代理
      "/api": {
        //代理的url
        target: process.env.VUE_APP_BASE_URL, //目标服务器
        pathRewrite: {
          //路径重写
          "^/api": "",
        },
      },
    },
  },
  //chainWebpack 合并webapack选项
  chainWebpack: (config) => {
    config.resolve.alias
      // 路径字符串是pages的时候，指向pages文件夹的绝对路径
      .set("pages", resolve("src/pages"))
      .set("component", resolve("src/component"))
      .set("src", resolve("src"))
      .set("~", resolve("src/pages"));
  },
};
//注:配置了vue.config.s这个文件一定要重启服务器才能生效

//pathRewrite

//接口的真实地址:http://chst.vip:8081/data/index.json

//不重写路径,最终解析的结果:
//http://chst.vip:8081/api/data/index.json

//重写路径之后的结果:
//http://chst.vip:8081/data/index.json

//什么情况下不需要路径重写?

//假如接口地址就是: http://chst.vip:8081/api/data/index.json
//不需要重写

//是不是一定写/api?
//不是 任意的字符都可以 只要自己定义好  并且统一
